package com.jrapider.session;

import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

/**
 * @Auther: hxs
 * @Date: 2019/1/4
 * @Description:
 */
public class UserSession {
    private final static String KEY_USER = "USER";

    public static <T> T getUser() {
        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        return (T) requestAttributes.getRequest().getSession().getAttribute(KEY_USER);
    }

    public static boolean existUser() {
        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        return requestAttributes.getRequest().getSession().getAttribute(KEY_USER) != null;
    }

    public static <T> void setUser(T user) {
        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        requestAttributes.getRequest().getSession().setAttribute(KEY_USER, user);
    }

    public static void removeUser() {
        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        requestAttributes.getRequest().getSession().removeAttribute(KEY_USER);
    }
}
